package rss.models 
{
	import rss.IRssEntryModel;
	import rss.IRssFeedModel;
	import flash.events.EventDispatcher;
	/**
	 * ...
	 * @author Luke Van In
	 */
	public class RssFeedModel extends EventDispatcher implements IRssFeedModel
	{
		
		private var _title:String;
		
		private var _description:String;
		
		private var _language:String;
		
		private var _publishedDate:Date;
		
		private var _lastBuildDate:Date;
		
		private var _generator:String;
		
		private var _timeToLive:int;
		
		private var _entries:Vector.<IRssEntryModel>;
		
		
		
		
		/**
		 * 
		 * @param	title
		 * @param	link
		 * @param	description
		 * @param	language
		 * @param	publishedDate
		 * @param	lastBuildDate
		 * @param	generator
		 * @param	timeToLive
		 * @param	entries
		 */
		public function RssFeedModel(title:String,  description:String, language:String, publishedDate:Date, lastBuildDate:Date, generator:String, timeToLive:int, entries:Vector.<IRssEntryModel>) 
		{
			this._title = title;
			
			this._description = description;
			
			this._language = language;
			
			this._publishedDate = publishedDate;
			
			this._lastBuildDate = lastBuildDate;
			
			this._generator = generator;
			
			this._timeToLive = timeToLive;
			
			this._entries = entries;
		}
		
		
		
		/* INTERFACE rss.IRssFeedModel */
		
		/**
		 * 
		 * @return
		 */
		public function get title():String 
		{
			return this._title;
		}

		
		/**
		 * 
		 * @return
		 */
		public function get description():String 
		{
			return this._description;
		}
		
		
		/**
		 * 
		 * @return
		 */
		public function get language():String 
		{
			return this._language;
		}
		
		
		/**
		 * 
		 * @return
		 */
		public function get publishedDate():Date 
		{
			return this._publishedDate;
		}
		
		
		/**
		 * 
		 * @return
		 */
		public function get lastBuildDate():Date 
		{
			return this._lastBuildDate;
		}
		
		
		/**
		 * 
		 * @return
		 */
		public function get generator():String 
		{
			return this._generator;
		}
		
		
		/**
		 * 
		 * @return
		 */
		public function get timeToLive():int 
		{
			return this._timeToLive;
		}
		
		
		
		
		/**
		 * 
		 * @return
		 */
		public function get entries():Vector.<IRssEntryModel>
		{
			return this._entries;
		}
		
		
		
		/**
		 * 
		 * @return
		 */
		/*public function getIterator():IIterator
		{
			var iterator:IIterator = new VectorIterator(Vector.<*>(this._entries));
			
			return iterator;
		}*/
		
		
		
		/**
		 * 
		 */
		public function dispose():void
		{
			
		}
		
		
		
		
		
	}

}